package com.leyou.myquartz;


import com.leyou.common.RedisConstant;
import com.leyou.util.AliyunUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Set;

@Component
public class MyJob {

    @Autowired
    private RedisTemplate<Object,Object> redisTemplate;

    //  表达式 定义 任务执行周期
    @Scheduled(cron = "*/10 * * * * ?")
    public  void  run1 (){
        //  多出来  冗余图片   differcence 方法 传递 两个set的key   自动比较 第一个 set  和 第二 set 集合  多出来的数据
        Set<Object> difference = redisTemplate.opsForSet().difference(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);

        if(difference!=null&&difference.size()>0){
            for (Object filename : difference) {
                AliyunUtils.deleteFile((String)filename);// oss 删除多余的图片
            }
            //  redis  存储 set 清理
            redisTemplate.delete(RedisConstant.SETMEAL_PIC_RESOURCES);
            redisTemplate.delete(RedisConstant.SETMEAL_PIC_DB_RESOURCES);
            System.out.println("阿里云 oss  冗余图片清理完毕！");
        }else{
            System.out.println("任务调度执行了一次--没有冗余图片信息");
        }
    }
}
